package org.web.standardplatform.client.helper.view;

public class RuleValidatorBuilder {

    /**
     * 构建数字范围校验规则的函数字符串。
     *
     * @param label 字段中文名称（如“年龄”）
     * @param min   最小值（可为 null）
     * @param max   最大值（可为 null）
     * @return JS 校验函数字符串
     */
    public static String buildNumberRangeValidator(String label, Integer min, Integer max) {
        StringBuilder sb = new StringBuilder();

        sb.append("(rule, value, callback) => {\n");
        sb.append("   if (value === '' || value === null || value === undefined) {\n");
        sb.append("    callback();\n");
        sb.append("    return;\n");
        sb.append("  }\n");

        if (min != null) {
            sb.append("  if (value < ").append(min).append(") {\n");
            sb.append("    callback(new Error('").append(label).append("不能小于").append(min).append("'));\n");
            sb.append("    return;\n");
            sb.append("  }\n");
        }

        if (max != null) {
            sb.append("  if (value > ").append(max).append(") {\n");
            sb.append("    callback(new Error('").append(label).append("不能大于").append(max).append("'));\n");
            sb.append("    return;\n");
            sb.append("  }\n");
        }

        sb.append("  callback();\n");
        sb.append("}");

        return sb.toString();
    }

}
